#define _CRT_SECURE_NO_WARNINGS
//作者：爱吃糖的boy
#include<stdio.h>
#include<string.h>
//int main() 
//{
//	//指针运算
//	//	指针的基本运算有三种，分别是：
//	//	• 指针 + -整数
//	//	• 指针 - 指针
//	//	• 指针的关系运算
//
//	int arr[] = {1,2,3,4,5,6,7,8,9,10};
//	int* p = arr;
//	/*for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", *p);
//		p++;
//
//	}*/
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", *(p+i));
//
//	}
//	printf("\n");
//	p = &arr[9];
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", *(p - i));
//
//	}
//	return 0;
//
//}

//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	printf("%d\n", &arr[0] - &arr[9]);//指针减去指针的绝对值是指针与指针之间的元素个数
//	//前提条件：两个指针指向同一块空间
//	return 0;
//
//}

//指针减去指针的用法

//int main() 
//{
//	//strlen   求字符串的长度
//	int len = strlen("abc");
//	printf("%d\n",len);
//	return 0;
//
//}

//int my_strlen(char* c) 
//{
//	int count = 0;
//	while (*c != '\0')
//	{
//		c++;
//		count++;
//	}
//	return count;
//}

//int my_strlen(char* c)
//{
//	char* start = c;
//	while (*c)  //\0的ASCII的值为0
//	{
//		c++;
//		
//	}
//	return c-start;
//}
//
//int main() 
//{
//	//strlen   求字符串的长度
//	int len = my_strlen("abc");
//	printf("%d\n",len);
//	return 0;
//
//}

//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int *p = arr;
//	while (p < arr+sz)  //指针大小比较
//	{
//		printf("%d ",*p);
//		p++;
//	}
//	return 0;
//
//}

//int test() 
//{
//
//	int a = 10;
//	return &a;
//}

//int main() 
//{
//	//野指针： 野指针就是指针指向的位置是不可知的（随机的、不正确的、没有明确限制的）
//	//1.指针未初始化
//	//int* pc;  //野指针
//	//*pc = 10;  //非法访问内存
//	//printf("%p\n",pc);
//	//return 0;
//
//	//2.指针越界
//	//int arr[5] = { 0 };
//	//int* p = arr;
//	//for (int i = 0; i < 10; i++)
//	//{
//	//	*p = i;
//	//	p++;
//	//}
//
//	//3.指针指向空间的释放
//	//int* p = test();
//	//printf("hehe");
//	//printf("%d\n",*p);
//
//}

int main() 
{
	//1.指针初始化 :(1)如果明确知道指针指向哪⾥就直接赋值地址，(2)如果不知道指针应该指向哪⾥，可以给指针赋值NULL

	//int* p = NULL;
	//*p = 100;//引发了未经处理的异常:写入访问权限冲突
	//printf("%d ",*p);
	//return 0;

	//2.小心指针越界

	//3.指针变量不再使⽤时，及时置NULL，指针使⽤之前检查有效性

	//4.避免返回局部变量的地址
	printf("goodbye!!!");

}